using System;
using System.Collections.Generic;

using AzureContrib.WindowsAzure.ServiceRuntime;

namespace AzureContrib.WindowsAzure.MockServiceRuntime
{
	/// <summary>
	/// This fake implementation references the contract <see cref="IRoleEnvironment"/> only. 
	/// Not the implementation AzureContrib.WindowsAzure.ServiceRuntime.RoleEnvironment or the Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.
	/// </summary>
	public class MockRoleEnvironment : IRoleEnvironment
	{
		public event EventHandler<RoleEnvironmentChangingEventArgs> Changing
		{
			add { throw new NotImplementedException(); }
			remove { throw new NotImplementedException(); }
		}

		public event EventHandler<RoleEnvironmentChangedEventArgs> Changed
		{
			add { throw new NotImplementedException(); }
			remove { throw new NotImplementedException(); }
		}

		public string DeploymentId
		{
			get
			{
				throw new NotImplementedException();
			}
		}

		public IRoleInstance CurrentRoleInstance
		{
			get { throw new NotImplementedException(); }
		}

		public bool IsAvailable
		{
			get { throw new NotImplementedException(); }
		}

		public IDictionary<string, IRole> Roles
		{
			get
			{
				throw new NotImplementedException();
			}
		}

		public bool TryGetConfigurationSettingValue(string configurationSettingName, out string settingValue)
		{
			throw new NotImplementedException();
		}

		public void RequestRecycle()
		{
			throw new NotImplementedException();
		}

		public string GetConfigurationSettingValue(string configurationSettingName)
		{
			throw new NotImplementedException();
		}

		public ILocalResource GetLocalResource(string localResourceName)
		{
			throw new NotImplementedException();
		}
	}
}